/**
 * @param {number} x
 * @return {number}
 */
//ES6 箭头函数
const reverse = (x) => {
    // 非空判断
    if (typeof x !== 'number') {
        return;
    }
    // 极值
    const MAX = 2147483647;
    const MIN = -2147483648;

    // 识别数字剩余部分并翻转
    const rest =
        x > 0
            ? String(x)
                .split('')
                .reverse()
                .join('')
            : String(x) //'-123'
                .slice(1) //'123'
                .split('')  //[1,2,3]
                .reverse() //[3,2,1]
                .join('');

    // 转换为正常值，区分正负数
    //parseInt(stringNum,[radix])
    //stringNum 参数为需要转换为整数的字符串；radix 参数为 2～36 之间的数字，表示 stringNum 参数的进制数，取值为 10 时可省略
    const result = x > 0 ? parseInt(rest, 10) : 0 - parseInt(rest, 10);

    // 边界情况
    if (result >= MIN && result <= MAX) {
        return result;
    }
    // 溢出
    return 0;
};

var a =  reverse(-123);
console.log(a);
